home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / test / test_ossaudiodev.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2005-10-18  |  4KB  |  125 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.4)
  3.  
  4. from test import test_support
  5. test_support.requires('audio')
  6. from test.test_support import verbose, findfile, TestFailed, TestSkipped
  7. import errno
  8. import fcntl
  9. import ossaudiodev
  10. import os
  11. import sys
  12. import select
  13. import sunaudio
  14. import time
  15. import audioop
  16.  
  17. try:
  18.     from ossaudiodev import AFMT_S16_NE
  19. except ImportError:
  20.     if sys.byteorder == 'little':
  21.         AFMT_S16_NE = ossaudiodev.AFMT_S16_LE
  22.     else:
  23.         AFMT_S16_NE = ossaudiodev.AFMT_S16_BE
  24. except:
  25.     sys.byteorder == 'little'
  26.  
  27. SND_FORMAT_MULAW_8 = 1
  28.  
  29. def read_sound_file(path):
  30.     fp = open(path, 'rb')
  31.     (size, enc, rate, nchannels, extra) = sunaudio.gethdr(fp)
  32.     data = fp.read()
  33.     fp.close()
  34.     if enc != SND_FORMAT_MULAW_8:
  35.         print 'Expect .au file with 8-bit mu-law samples'
  36.         return None
  37.     
  38.     data = audioop.ulaw2lin(data, 2)
  39.     return (data, rate, 16, nchannels)
  40.  
  41.  
  42. def play_sound_file(data, rate, ssize, nchannels):
  43.     
  44.     try:
  45.         dsp = ossaudiodev.open('w')
  46.     except IOError:
  47.         msg = None
  48.         if msg[0] in (errno.EACCES, errno.ENODEV, errno.EBUSY):
  49.             raise TestSkipped, msg
  50.         
  51.         raise TestFailed, msg
  52.  
  53.     dsp.bufsize()
  54.     dsp.obufcount()
  55.     dsp.obuffree()
  56.     dsp.getptr()
  57.     dsp.fileno()
  58.     dsp.setparameters(AFMT_S16_NE, nchannels, rate)
  59.     t1 = time.time()
  60.     print 'playing test sound file...'
  61.     dsp.write(data)
  62.     dsp.close()
  63.     t2 = time.time()
  64.     print 'elapsed time: %.1f sec' % (t2 - t1)
  65.  
  66.  
  67. def test_setparameters(dsp):
  68.     config1 = (ossaudiodev.AFMT_U8, 1, 8000)
  69.     config2 = (AFMT_S16_NE, 2, 44100)
  70.     for config in [
  71.         config1,
  72.         config2]:
  73.         (fmt, channels, rate) = config
  74.         if dsp.setfmt(fmt) == fmt and dsp.channels(channels) == channels and dsp.speed(rate) == rate:
  75.             break
  76.             continue
  77.     else:
  78.         raise RuntimeError('unable to set audio sampling parameters: you must have really weird audio hardware')
  79.     result = dsp.setparameters(fmt, channels, rate, False)
  80.     if not result == (fmt, channels, rate):
  81.         raise AssertionError, 'setparameters%r: returned %r' % (config + result)
  82.     result = dsp.setparameters(fmt, channels, rate, True)
  83.     if not result == (fmt, channels, rate):
  84.         raise AssertionError, 'setparameters%r: returned %r' % (config + result)
  85.  
  86.  
  87. def test_bad_setparameters(dsp):
  88.     fmt = AFMT_S16_NE
  89.     rate = 44100
  90.     channels = 2
  91.     for config in [
  92.         (fmt, 300, rate),
  93.         (fmt, -5, rate),
  94.         (fmt, channels, -50)]:
  95.         (fmt, channels, rate) = config
  96.         result = dsp.setparameters(fmt, channels, rate, False)
  97.         if not result != config:
  98.             raise AssertionError, 'setparameters: unexpectedly got requested configuration'
  99.         
  100.         try:
  101.             result = dsp.setparameters(fmt, channels, rate, True)
  102.             raise AssertionError('setparameters: expected OSSAudioError')
  103.         continue
  104.         except ossaudiodev.OSSAudioError:
  105.             err = None
  106.             print 'setparameters: got OSSAudioError as expected'
  107.             continue
  108.         
  109.  
  110.     
  111.  
  112.  
  113. def test():
  114.     (data, rate, ssize, nchannels) = read_sound_file(findfile('audiotest.au'))
  115.     play_sound_file(data, rate, ssize, nchannels)
  116.     dsp = ossaudiodev.open('w')
  117.     
  118.     try:
  119.         test_setparameters(dsp)
  120.     finally:
  121.         dsp.close()
  122.  
  123.  
  124. test()
  125.